@@ -19,6 +19,7 @@ from django.utils.timezone import utc  | 
            ||
| 19 | 19 | 
                from account.models import UserInfo  | 
            
| 20 | 20 | 
                from integral.models import SaleclerkSubmitLogInfo  | 
            
| 21 | 21 | 
                from logs.models import MchInfoEncryptLogInfo  | 
            
| 22 | 
                +from coupon.models import UserCouponInfo  | 
            |
| 22 | 23 | 
                from mch.models import AdministratorInfo, ConsumeInfoSubmitLogInfo, ModelInfo, SaleclerkInfo  | 
            
| 23 | 24 | 
                from statistic.models import (ConsumeModelSaleStatisticInfo, ConsumeSaleStatisticInfo, ConsumeUserStatisticInfo,  | 
            
| 24 | 25 | 
                ModelSaleStatisticInfo)  | 
            
                @@ -141,6 +142,34 @@ def userinfo(request):  | 
            ||
| 141 | 142 | 
                 | 
            
| 142 | 143 | 
                 | 
            
| 143 | 144 | 
                @logit  | 
            
| 145 | 
                +def query_usercoupons(request):  | 
            |
| 146 | 
                +    brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
               | 
            |
| 147 | 
                +    admin_id = request.POST.get('admin_id', '')
               | 
            |
| 148 | 
                +    user_id = request.POST.get('user_id', '')
               | 
            |
| 149 | 
                +  | 
            |
| 150 | 
                + if brand_id != settings.KODO_DEFAULT_BRAND_ID:  | 
            |
| 151 | 
                + return response(ProductBrandStatusCode.BRAND_NOT_MATCH)  | 
            |
| 152 | 
                +  | 
            |
| 153 | 
                + # 校验用户是否存在  | 
            |
| 154 | 
                + try:  | 
            |
| 155 | 
                + user = UserInfo.objects.get(user_id=user_id)  | 
            |
| 156 | 
                + except UserInfo.DoesNotExist:  | 
            |
| 157 | 
                + return response(UserStatusCode.USER_NOT_FOUND)  | 
            |
| 158 | 
                +  | 
            |
| 159 | 
                + try:  | 
            |
| 160 | 
                + administrator = AdministratorInfo.objects.get(admin_id=admin_id, user_status=AdministratorInfo.ACTIVATED, status=True)  | 
            |
| 161 | 
                + except AdministratorInfo.DoesNotExist:  | 
            |
| 162 | 
                + return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND)  | 
            |
| 163 | 
                +  | 
            |
| 164 | 
                +    coupons = UserCouponInfo.objects.filter(brand_id=administrator.brand_id, user_id=user_id, status=True).order_by('-created_at')
               | 
            |
| 165 | 
                + coupons = [coupon.admindata for coupon in coupons]  | 
            |
| 166 | 
                + print coupons  | 
            |
| 167 | 
                +  | 
            |
| 168 | 
                +    return response(200, 'User Coupon Success', u'用户劵列表获取成功', data={
               | 
            |
| 169 | 
                + 'coupons': coupons,  | 
            |
| 170 | 
                + })  | 
            |
| 171 | 
                +  | 
            |
| 172 | 
                +@logit  | 
            |
| 144 | 173 | 
                def query_usergoods(request):  | 
            
| 145 | 174 | 
                     brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
               | 
            
| 146 | 175 | 
                     admin_id = request.POST.get('admin_id', '')
               | 
            
                @@ -297,6 +297,7 @@ urlpatterns += [  | 
            ||
| 297 | 297 | 
                 | 
            
| 298 | 298 | 
                url(r'^admin/userinfo$', admin_views.userinfo, name='userinfo'),  | 
            
| 299 | 299 | 
                url(r'^admin/query_usergoods$', admin_views.query_usergoods, name='query_usergoods'),  | 
            
| 300 | 
                + url(r'^admin/query_usercoupons$', admin_views.query_usercoupons, name='query_usercoupons'),  | 
            |
| 300 | 301 | 
                url(r'^admin/query_userinfo$', admin_views.query_userinfo, name='query_userinfo'),  | 
            
| 301 | 302 | 
                url(r'^admin/userinfo_update$', admin_views.userinfo_update, name='userinfo_update'),  | 
            
| 302 | 303 | 
                 | 
            
                @@ -117,6 +117,16 @@ class UserCouponInfo(BaseModelMixin):  | 
            ||
| 117 | 117 | 
                if not self.expire_at:  | 
            
| 118 | 118 | 
                return False  | 
            
| 119 | 119 | 
                return tc.utc_datetime() > self.expire_at  | 
            
| 120 | 
                +  | 
            |
| 121 | 
                + @property  | 
            |
| 122 | 
                + def coupon_source(self):  | 
            |
| 123 | 
                + if self.coupon_from == 'INTEGRAL_MALL':  | 
            |
| 124 | 
                +            return '积分商城'.encode('utf-8')
               | 
            |
| 125 | 
                + elif self.coupon_from == 'MEMBER_BENEFITS':  | 
            |
| 126 | 
                +            return '会员权益'.encode('utf-8')
               | 
            |
| 127 | 
                + elif self.coupon_from == 'PROMOTION':  | 
            |
| 128 | 
                + return self.activity_name  | 
            |
| 129 | 
                + return ''  | 
            |
| 120 | 130 | 
                 | 
            
| 121 | 131 | 
                @property  | 
            
| 122 | 132 | 
                def data(self):  | 
            
                @@ -138,5 +148,29 @@ class UserCouponInfo(BaseModelMixin):  | 
            ||
| 138 | 148 | 
                'has_expired': self.has_expired,  | 
            
| 139 | 149 | 
                'has_used': self.has_used,  | 
            
| 140 | 150 | 
                'admin_id': self.admin_id,  | 
            
| 151 | 
                + 'used_at': self.used_at  | 
            |
| 152 | 
                + }  | 
            |
| 153 | 
                +  | 
            |
| 154 | 
                + @property  | 
            |
| 155 | 
                + def admindata(self):  | 
            |
| 156 | 
                +        return {
               | 
            |
| 157 | 
                + 'user_coupon_id': self.user_coupon_id,  | 
            |
| 158 | 
                + 'coupon_id': self.coupon_id,  | 
            |
| 159 | 
                + 'user_id': self.user_id,  | 
            |
| 160 | 
                + 'coupon_title': self.coupon_title,  | 
            |
| 161 | 
                + 'coupon_value': self.coupon_value,  | 
            |
| 162 | 
                + 'coupon_image_url': self.coupon_image_url,  | 
            |
| 163 | 
                + 'is_coupon_admin_writeoff': self.is_coupon_admin_writeoff,  | 
            |
| 164 | 
                + 'active_at': tc.local_string(utc_dt=self.active_at, format='%Y-%m-%d'),  | 
            |
| 165 | 
                + 'expire_at': tc.local_string(utc_dt=self.expire_at, format='%Y-%m-%d'),  | 
            |
| 166 | 
                + 'coupon_valid_period': self.coupon_valid_period,  | 
            |
| 167 | 
                + 'coupon_limit_model_ids': self.coupon_limit_model_ids,  | 
            |
| 168 | 
                + 'has_actived': self.has_actived,  | 
            |
| 169 | 
                + 'has_expired': self.has_expired,  | 
            |
| 170 | 
                + 'has_used': self.has_used,  | 
            |
| 171 | 
                + 'admin_id': self.admin_id,  | 
            |
| 141 | 172 | 
                'used_at': self.used_at,  | 
            
| 173 | 
                + 'coupon_from': self.activity_name if self.coupon_from == 'PROMOTION' else self.coupon_from,  | 
            |
| 174 | 
                + 'clerk_name': self.clerk_name,  | 
            |
| 175 | 
                + 'distributor_name': self.distributor_name,  | 
            |
| 142 | 176 | 
                }  |